import request from '@/utils/request'
import {
  AllRoleResponseData,
  SetRoleData,
  User,
  UserResponseDate,
} from './type'

enum API {
  // 获取已有用户账号信息的接口地址
  ALL_USER_URL = '/admin/acl/user/',
  // 新增用户接口地址
  ADD_USER_URL = '/admin/acl/user/save',
  // 修改用户接口地址
  UPDATE_USER_URL = '/admin/acl/user/update',
  // 获取当前用户已分配的角色和全部角色的接口地址
  ALL_ROLE_URL = '/admin/acl/user/toAssign/',
  // 为用户分配/修改角色的接口地址
  SET_ROLE_URL = '/admin/acl/user/doAssignRole',
  // 删除指定用户的接口地址
  DELETE_USER_URL = '/admin/acl/user/remove/',
  // 批量删除用户的接口地址
  DELETE_BATCH_USER_URL = '/admin/acl/user/batchRemove',
}

// 获取全部已有用户账号信息的接口方法
export const reqUserInfo = (page: number, limit: number, keyWord: string) =>
  request.get<any, UserResponseDate>(
    API.ALL_USER_URL + `${page}/${limit}?username=${keyWord}`,
  )
// 新增/修改用户的接口方法
export const reqAddOrUpdateUser = (data: User) =>
  data.id
    ? request.put<any, any>(API.UPDATE_USER_URL, data)
    : request.post<any, any>(API.ADD_USER_URL, data)
// 获取全部角色和当前用户已分配的角色的接口方法
export const reqAllRole = (userId: number) =>
  request.get<any, AllRoleResponseData>(API.ALL_ROLE_URL + userId)
// 分配职位的接口方法
export const reqSetUserRole = (data: SetRoleData) =>
  request.post<any, any>(API.SET_ROLE_URL, data)
// 删除指定用户的接口方法
export const reqRemoveUser = (userId: number) =>
  request.delete<any, any>(API.DELETE_USER_URL + userId)
// 批量删除用户的接口方法
export const reqBatchRemoveUser = (idList: number[]) =>
  request.delete<any, any>(API.DELETE_BATCH_USER_URL, { data: idList })
